/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Ventanas;

import Online.EnviarMail;
import Online.Inicio;
import Online.Listas;
import java.awt.Color;
import java.awt.Container;
import java.awt.Cursor;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;

/**
 *
 * @author Victor
 */
public class VentanaRecuperar extends JFrameConFondo implements ActionListener{
    
    	
        
        private JLabel labelName;
        private JTextField Name;
        private JLabel labelPregunta;
        private JTextField Pregunta;
        private JLabel labelRespuesta;
        private JTextField Respuesta;
	private JButton botonAceptar;
        
        public VentanaRecuperar(){
                //constructor JFrame
		super("Recuperar contraseña"); 
            
                //Opciones de ventana
		this.setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
                //se añade la opción de preguntar antes de salir
                addWindowListener(new java.awt.event.WindowAdapter() {
                    public void windowClosing(java.awt.event.WindowEvent evt) {
                        setVisible(false);
                        setDefaultCloseOperation(DISPOSE_ON_CLOSE); 
                    }
                });
                
		setLayout(null);
		setSize(400,355);
                setLocationRelativeTo(null);
		Container contenidoPanel = getContentPane();
		contenidoPanel.setBackground(Color.black);
                setImagen("objetos/fondo.jpg");
                setIconImage(new ImageIcon(getClass().getResource("objetos/icono.png")).getImage()); 
                
                
                //Cuadrante de introducción de nombre
		labelName = new JLabel("Nombre de Usuario:");
                labelName.setBounds(10,20,300,15);
                labelName.setForeground(Color.white);
                labelName.setFont(new java.awt.Font("Arial", 1, 16)); 
		getContentPane().add(labelName);                
		this.Name = new JTextField();
                this.Name.setFont(new java.awt.Font("Arial", 0, 16)); 
		this.Name.setBounds(10,35,200,25);
		getContentPane().add(this.Name);
                Name.setActionCommand("Aceptar");
		Name.addActionListener(this);
                
                                //Cuadrante de introducción de nombre
		labelPregunta = new JLabel("Pregunta secreta:");
                labelPregunta.setBounds(10,85,300,15);
                labelPregunta.setForeground(Color.white);
                labelPregunta.setFont(new java.awt.Font("Arial", 1, 16)); 
		getContentPane().add(labelPregunta);                
		this.Pregunta = new JTextField();
                this.Pregunta.setFont(new java.awt.Font("Arial", 0, 16)); 
		this.Pregunta.setBounds(10,100,350,25);
		getContentPane().add(this.Pregunta);
                Pregunta.setActionCommand("Aceptar");
		Pregunta.addActionListener(this);
                
                                //Cuadrante de introducción de nombre
		labelRespuesta = new JLabel("Respuesta:");
                labelRespuesta.setBounds(10,150,300,15);
                labelRespuesta.setForeground(Color.white);
                labelRespuesta.setFont(new java.awt.Font("Arial", 1, 16)); 
		getContentPane().add(labelRespuesta);                
		this.Respuesta = new JTextField();
                this.Respuesta.setFont(new java.awt.Font("Arial", 0, 16)); 
		this.Respuesta.setBounds(10,165,350,25);
		getContentPane().add(this.Respuesta);
                Respuesta.setActionCommand("Aceptar");
		Respuesta.addActionListener(this);
                
                                //Constucción del boton Aceptar
		botonAceptar = new JButton("Aceptar"); 
		contenidoPanel.add(botonAceptar);
		botonAceptar.setBounds(280,270,100,30);
                botonAceptar.setFont(new java.awt.Font("Arial", 1, 16)); 
                botonAceptar.setActionCommand("Aceptar");
		botonAceptar.addActionListener(this);
                botonAceptar.setIcon(new ImageIcon(getClass().getResource("objetos/Aceptar Inicio.jpg")));
                
                setVisible(true);
                
        }
        
        
        /**
     * Metodo para conectar las listas con la bbdd
     * @return La conexión con la bbdd
     */
    private Inicio conectarInicio(){
        Inicio inicio = new Inicio();
        boolean salir = false;
        //Si no se ha conectado
        while (!inicio.estado() && !salir){
            this.setCursor(Cursor.WAIT_CURSOR);
            String message = "Fallo al conectar con el servidor.\n¿Desea volver a intentar conectar?";
            String title = "Error de conexión";
            //Se ofrece la opcion de reconectar
            int reply = JOptionPane.showConfirmDialog(null, message, title, JOptionPane.YES_NO_OPTION);
                this.setCursor(Cursor.DEFAULT_CURSOR);
            //Si rechazo reconectar
            if (reply == JOptionPane.NO_OPTION){     
                this.setCursor(Cursor.WAIT_CURSOR);
                salir=true;
                new VentanaInicio();
                //Se cierra la ventana de login
                setVisible(false);
                setDefaultCloseOperation(DISPOSE_ON_CLOSE); 
                this.setCursor(Cursor.DEFAULT_CURSOR);
            }
            //Si se acepto reconectar
            else{
                this.setCursor(Cursor.WAIT_CURSOR);
                //Se reconecta
                inicio = new Inicio();
                this.setCursor(Cursor.DEFAULT_CURSOR);
            }    
        }
        return inicio;
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        //Variable que contiene el boton pulsado
         String comando = e.getActionCommand();
         String usuario = Name.getText();
         String pregunta = Pregunta.getText();;
         String respuesta = Respuesta.getText();;
         
         if(comando.equals("Aceptar")){
             Inicio inicio = conectarInicio();
             String pass = inicio.recuperarPass(usuario, pregunta, respuesta);
             if((pass == null)||(pass.equals("")))
		JOptionPane.showMessageDialog (null,"Datos de usuario incorrectos.",
				"Atención", JOptionPane.ERROR_MESSAGE);
             else{
                new EnviarMail(usuario,pass,null,null,false); 
                setVisible(false);
                setDefaultCloseOperation(DISPOSE_ON_CLOSE);
             }
         }
    }
    
}

